package com.cz.nongyetongv5.utils;
//package com.cz.nongyetongv5.utils;
//
//import java.io.File;
//import java.io.IOException;
//import java.util.Collection;
//import java.util.Map;
//
//import org.jivesoftware.smack.ConnectionConfiguration;
//import org.jivesoftware.smack.SmackConfiguration;
//import org.jivesoftware.smack.XMPPConnection;
//import org.jivesoftware.smack.XMPPException;
//import org.jivesoftware.smack.packet.Presence;
//import org.jivesoftware.smack.util.StringUtils;
//import org.jivesoftware.smackx.muc.DiscussionHistory;
//import org.jivesoftware.smackx.muc.HostedRoom;
//import org.jivesoftware.smackx.muc.MultiUserChat;
//import org.jivesoftware.smackx.packet.VCard;
//
//import android.provider.MediaStore.Files;
//import android.util.Log;
//
//import com.cz.nongyetongv5.adapter.config.CommonConstants;
//
//public class XmppTool {
//
//	private static final int PORT = 5222;
//
//	private static final String IP_ADDRESS = "www.czfood360.cn";
//
//	private static XMPPConnection con = null;
//
//	private static void openConnection() {
//		try {
//			ConnectionConfiguration connConfig = new ConnectionConfiguration(
//					IP_ADDRESS, PORT);
//			con = new XMPPConnection(connConfig);
//			con.connect();
//		} catch (XMPPException xe) {
//			xe.printStackTrace();
//		}
//	}
//
//	public static XMPPConnection getConnection() {
//		if (con == null) {
//			openConnection();
//		}
//		return con;
//	}
//
//	public static void closeConnection() {
//
//		if (con != null) {
//			con.disconnect();
//		}
//
//		con = null;
//	}
//
//	/**
//	 * ע���û�
//	 */
//	public static boolean regUser(String username, String pwd,
//			Map<String, String> map) {
//
//		boolean success = false;
//
//		try {
//
//			if (map == null || map.size() < 1) {
//
//				getConnection().getAccountManager()
//						.createAccount(username, pwd);
//			} else {
//
//				getConnection().getAccountManager().createAccount(username,
//						pwd, map);
//			}
//
//			success = true;
//
//		} catch (XMPPException e) {
//
//			// �Ñ��Ѿ�����
//			if (e.getXMPPError().getCode() == 409) {
//
//				success = true;
//			}
//
//		} catch (Exception e) {
//		}
//
//		return success;
//
//	}
//
//	/**
//	 * ���ݷ��������ҷ���
//	 * 
//	 * @param romNameStart
//	 */
//	public static HostedRoom getChatHomeByName(String romNameStart) {
//
//		/*
//		 * ���յķ������
//		 */
//		HostedRoom room = null;
//
//		try {
//
//			Collection<HostedRoom> hostedRooms = MultiUserChat.getHostedRooms(
//					XmppTool.getConnection(), XmppTool.getConnection()
//							.getServiceName());
//
//			if (!hostedRooms.isEmpty()) {
//
//				// ��÷���
//				for (HostedRoom hostedRoom : hostedRooms) {
//
//					if (hostedRoom.getJid().startsWith("conference")) {
//
//						// �ӷ���
//						Collection<HostedRoom> childHostedRooms = MultiUserChat
//								.getHostedRooms(XmppTool.getConnection(),
//										hostedRoom.getJid());
//
//						for (HostedRoom childHostedRoom : childHostedRooms) {
//
//							if (childHostedRoom.getName().startsWith(
//									romNameStart)) {
//
//								room = childHostedRoom;
//
//								break;
//							}
//
//						}
//
//						break;
//					}
//
//				}
//			}
//		} catch (XMPPException e) {
//
//		}
//
//		return room;
//	}
//
//	/**
//	 * ���뷿��
//	 */
//	public static MultiUserChat joinRoom(HostedRoom room, String username) {
//
//		MultiUserChat muc = null;
//
//		if (room != null) {
//
//			muc = new MultiUserChat(XmppTool.getConnection(), room.getName()
//					+ "@conference."
//					+ XmppTool.getConnection().getServiceName());
//
//			// ������ʾ��ʷ��¼��Ϣ������
//			DiscussionHistory history = new DiscussionHistory();
//
//			history.setMaxStanzas(0);
//
//			// �û�����������
//			try {
//				muc.join(username, null, history,
//						SmackConfiguration.getPacketReplyTimeout());
//
//			} catch (XMPPException e) {
//				muc = null;
//			}
//
//		}
//
//		return muc;
//
//	}
//
//	/*
//	 * �����û�ID����û���Ƭ
//	 */
//	public static VCard getVCardByUserName(String user) {
//
//		VCard vCard = null;
//
//		if (getConnection() == null) {
//
//			return vCard;
//		}
//
//		vCard = new VCard();
//
//		try {
//			vCard.load(getConnection(), user);
//		} catch (XMPPException e) {
//		}
//
//		return vCard;
//
//	}
//
//	/**
//	 * �޸��ǳ�
//	 * 
//	 * @param userId
//	 * @param nickName
//	 */
//	public static void updateNickName(String userId, String nickName) {
//
//		VCard vCard = new VCard();
//
//		try {
//			vCard.load(getConnection(), userId + "@"
//					+ getConnection().getServiceName());
//
//			vCard.setNickName(nickName);
//
//			vCard.setAvatar(vCard.getAvatar());
//
//			vCard.save(getConnection());
//
//		} catch (XMPPException e) {
//		}catch (Exception e) {
//		}
//
//	}
//
//	/**
//	 * �޸�ͷ��
//	 * @throws IOException 
//	 */
//	public static void updateUserPhoto(String userId, File file) throws IOException {
//
//		VCard vCard = new VCard();
//
//		try {
//			vCard.load(getConnection(), userId + "@"
//					+ getConnection().getServiceName());
//
//			vCard.setNickName(vCard.getNickName());
//
//			byte[] bytes = ImageUtil.getFileByte(file) ;
//			String encodedImage = StringUtils.encodeBase64(bytes);
//			vCard.setAvatar(bytes, encodedImage);
//			vCard.setEncodedImage(encodedImage);
//			vCard.setField("PHOTO", "<TYPE>image/jpg</TYPE><BINVAL>"
//					+ encodedImage + "</BINVAL>", true);
//
//			vCard.save(getConnection());
//
//		} catch (XMPPException e) {
//		}
//
//	}
//
//	/**
//	 * ��½
//	 * 
//	 * @param username
//	 * @param password
//	 */
//	public static boolean login(String username, String password) {
//
//		boolean result = false;
//		try {
//			XmppTool.getConnection().login(username, password);
//			// status ����
//			Presence presence = new Presence(Presence.Type.available);
//			XmppTool.getConnection().sendPacket(presence);
//
//			result = true;
//		} catch (IllegalStateException e) {
//			result = true;
//		} catch (XMPPException e) {
//		}
//
//		return result;
//	}
//
//}
